package com.zijidelu.luframework.domain.model.entity;

import com.zijidelu.luframework.base.model.BaseModel;
import com.zijidelu.luframework.base.model.DataModel;
import com.zijidelu.luframework.base.model.Identifiable;

import java.io.Serializable;

/**
 * 实体抽象类。
 *
 * @author ZIJIDELU
 * @datetime 2025/10/29 23:13
 */
public interface Entity<D extends DataModel> extends BaseModel, EntityLifecycle, Identifiable<Serializable> {
    /**
     * 将领域模型转换为实体。
     *
     * @return 实体
     */
    @SuppressWarnings("unchecked")
    default D asDataModel() {
        return (D) this;
    }

}
